#pragma once
#include "common.h"
#include "EngineWindow.h"
#include <Windows.h>

class WinWindow : public IEngineWindow
{
public:
	WinWindow(const WindowSetup& setup);
    virtual ~WinWindow();
	virtual WND_STATUS 	ProcessMessage() const;

	virtual uint32_t 	GetWidth() const;
	virtual uint32_t 	GetHeight() const;
	virtual WND_HANDLE 	GetWindowHandle() const;
private:
	WinWindow(const WinWindow&);
	WinWindow& operator=(const WinWindow&);\
    static LRESULT __stdcall wndProc(HWND in_hWnd, UINT in_message, WPARAM in_wParam, LPARAM in_lParam);
    
    WindowSetup m_setup;
    HWND 		m_window;
};